Mobile Application Development Platforms - Topic 2 Summary
1. Overview of Mobile OS Platforms
Understanding available mobile OS platforms is crucial for platform selection and development planning.
| Platform |
Developer |
Description |
Market Position |
| Android |
Google |
Linux-based, open-source, most popular OS |
~70% market share (2022) |
| iOS |
Apple |
Proprietary, secure, user-centric design |
~27% market share (2022) |
| Windows OS |
Microsoft |
Developed for Pocket PCs and smartphones |
Minimal share |
| Symbian OS |
Nokia |
Java-based, early smartphone OS |
No longer relevant |
| Bada |
Samsung |
Discontinued mobile OS |
No longer relevant |
| BlackBerry OS |
Research In Motion |
Enterprise-focused, deprecated |
No longer relevant |
| Tizen |
Samsung |
Open-source, Linux-based |
Minimal share |
2. Android Development Platform
Android is the dominant mobile OS with a comprehensive software stack and flexible architecture.
2.1 Android Architecture (Software Stack)
Android Software Stack
System Apps
Java API Framework
Native C/C++ Libraries
Android Runtime (ART)
Hardware Abstraction Layer (HAL)
Linux Kernel
↓ Higher-level components depend on lower-level components
2.2 Key Android Components
- System Apps
- Pre-installed apps (Dialer, Email, Calendar, Camera)
- Both user apps and developer-accessible services
- Java API Framework
- Building blocks for app development
- Includes View System, Resource Manager, Activity Manager
- Content Providers for data sharing
- Notification Manager for alerts
- Native C/C++ Libraries
- WebKit, OpenMAX AL, Libc, Media Framework, OpenGL ES
- Performance-critical components
- Android Runtime (ART)
- Replaces Dalvik VM since Android 5.0 (Lollipop)
- Compiles apps to native instructions during installation
- Executes DEX files (optimized bytecode)
- Each app runs in its own process
- Hardware Abstraction Layer (HAL)
- Standard interfaces for hardware access
- Separates hardware-specific implementations
- Audio, Bluetooth, Camera, Sensors modules
- Linux Kernel
- Foundation of Android platform
- Manages drivers, power, memory, security
- Threading and memory management
- Device manufacturer develops hardware drivers
2.3 Android Open System Platform (AOSP)
- Open-source, modifiable Android source code
- Complete implementation of Android mobile platform
- Two compatibility levels:
- AOSP compatibility
- Android compatibility (Google Mobile Services)
- Supports diverse hardware and form factors
- Apps distributed via Google Play Store
3. iOS Development Platform
iOS is Apple's proprietary OS with a layered architecture and emphasis on security and user experience.
3.1 iOS Architecture (Layered)
iOS Layered Architecture
Cocoa Touch
Media
Core Services
Core OS
↑ Higher-level layers depend on lower-level layers
3.2 Core OS Layer
- Core Bluetooth Framework
- Accelerate Framework
- External Accessory Framework
- Security Services framework
- Local Authentication framework
3.3 Core Services Layer
- Foundation Framework - Basic functionality
- Core Data Framework - Data management
- Core Location Framework - GPS and location services
- Core Motion Framework - Accelerometer and motion data
- HealthKit Framework - Health and fitness data
- StoreKit Framework - In-app purchases
- CloudKit Framework - iCloud integration
3.4 Media Layer
- Graphics & Animation
- Core Graphics framework
- Core Animation
- Metal (high-performance graphics)
- Audio
- AV Foundation
- Media Player Framework
- OpenAL
- Video
- AV Kit
- AV Foundation
- Core Media
3.5 Cocoa Touch Layer
- UIKit Framework - Main framework for app development
- EventKit Framework - Calendar and events
- GameKit Framework - Social gaming features
- MapKit Framework - Maps and location services
- PushKit Framework - VoIP and push notifications
3.6 iOS Key Facts
- Proprietary OS by Apple Inc.
- Based on macOS (Macintosh OS X)
- Supports multiple languages: Objective-C, Swift, C, C++
- Second most popular mobile OS (worldwide)
- Emphasis on user-centric design and security
- Apps distributed via Apple App Store
4. Selecting the Right Development Platform
Choosing the appropriate platform directly impacts app success and development efficiency.
4.1 Key Decision Factors
| Factor |
Description & Considerations |
| Target Audience |
Research device preferences, demographics, and interests of your user base |
| Development Cost |
Significant differences in costs between platforms (Android generally lower) |
| Device Support |
Consider platform fragmentation (Android) vs. limited devices (iOS) |
| Business Model |
Monetization options, revenue streams, user relationship model |
| Technical Features |
Evaluate platform support for required features and APIs |
| Third-party Integration |
Ease of integrating with external services and APIs |
4.2 Platform Comparison Summary
| Criteria |
Android |
iOS |
| Market Share |
~70% (Global) |
~27% (Global) |
| Development Cost |
Lower (open-source) |
Higher (Apple hardware/software ecosystem) |
| Device Fragmentation |
High (many manufacturers) |
Low (Apple devices only) |
| Market Reach |
Global, emerging markets |
Developed markets, premium users |
| Monetization |
Ad-supported, freemium |
Premium apps, in-app purchases |
| Development Tools |
Android Studio, open-source |
Xcode, Swift/Objective-C |
| App Distribution |
Google Play Store |
Apple App Store |
5. Quick Reference Guide
Android Platform
- Architecture: Linux Kernel → HAL → Native Libraries → ART → Java API Framework → System Apps
- Pros: Open-source, large market, customizable, lower development cost
- Cons: Fragmentation, security fragmentation
- Development Environment: Android Studio, Kotlin/Java
- Distribution: Google Play Store (APK format)
iOS Platform
- Architecture: Core OS → Core Services → Media → Cocoa Touch
- Pros: Premium users, better monetization, unified ecosystem
- Cons: Expensive development, limited devices, stricter review process
- Development Environment: Xcode, Swift/Objective-C
- Distribution: Apple App Store (IPA format)
6. Exam Preparation Tips
- Memorize architecture diagrams for both Android and iOS
- Understand the layered approach and dependencies
- Compare platforms systematically using the decision factors
- Know the key frameworks in each platform's layers
- Practice platform selection scenarios based on different business contexts
- Compare development processes and tools for both platforms
7. Summary
Android: Dominant platform with open architecture, lower costs, but fragmentation issues. Best for global reach and cost-sensitive projects.
iOS: Premium platform with unified ecosystem, better monetization, but higher costs and limited device support. Best for premium user base and revenue generation.
Platform Selection: Requires analysis of target audience, budget, technical requirements, and business model. Each platform has distinct advantages and challenges that must be carefully evaluated.